Skip to content

Add linux integration validation for published binaries#37

Open
spapa013 wants to merge 3 commits intonauticalab:mainfrom
spapa013:spapadop/plt-866-add-linux-integration-validation-for-published-binaries
Open

Add linux integration validation for published binaries#37
spapa013 wants to merge 3 commits intonauticalab:mainfrom
spapa013:spapadop/plt-866-add-linux-integration-validation-for-published-binaries

Conversation

@spapa013
Copy link
Collaborator

⚠️ This PR is stacked on #36. Rebase onto main after that PR is merged before merging this one.

Summary

Builds on #36 to move from "artifact is published" to "artifact is supported". The linux/amd64 binary is now executed in CI against a meaningful command path, and platform support status is communicated consistently to both contributors (workflow comment) and users (release notes).

Changes

.github/workflows/release.yml

  • Expand linux/amd64 validation from devenv version to also run devenv generate valid_user --dry-run, exercising config loading, global config merging, and the full template rendering pipeline
  • Add platform support table to release body, published on every release page

internal/config/testdata/devenv.yaml

  • New global config fixture supplying cluster-level defaults (image, hostName, namespace) required by the generate command
  • Used by both the CI validation step in release.yml and the existing config package test suite
  • valid_user is used as the target developer config — by convention this fixture is always valid, making it safe to rely on from outside the config package

Notes

  • The devenv validate command was considered as an additional validation step but was found to have a pre-existing bug: it does not merge devenv.yaml global config before validating, causing false failures for configs that rely on inherited fields. This has been documented as a separate Linear issue and worked around here by using generate --dry-run instead, which uses the correct merged config path.

Testing

  • Both validation commands verified locally against internal/config/testdata
  • End-to-end tested via tag push in PLT-864 — the validation step ran successfully against the same workflow

- Add workflow_dispatch trigger to release workflow
- Use go-version-file: go.mod as source of truth for Go version in both workflows
- Replace inline build logic in release.yml with task build:dist
- Add devenv --version smoke test with comment distinguishing integration-tested vs cross-compiled platforms
- Use versioned artifact naming (devenv_{version}_{os}_{arch}) with glob upload
- Extract run-test.yml as reusable workflow via workflow_call; release.yml test job delegates to it
- Add task test:ci with full coverage flags; task test now runs with -race
- Add build:dist task for CI release builds into dist/ with version-in-filename
- Add missing build:linux-arm64 task; include in build:all
- Promote VERSION, COMMIT, BUILD_TIME, GO_VERSION, LDFLAGS to global Taskfile vars, eliminating 6x duplication

Refs PLT-864
- Expand linux/amd64 smoke test to include devenv generate dry-run against valid_user fixture
- Add platform support table to release body distinguishing integration-tested vs cross-compiled platforms
- Add devenv.yaml global config fixture to internal/config/testdata to support generate command

Refs PLT-866
@spapa013 spapa013 requested a review from eywalker March 18, 2026 21:56
@codecov
Copy link

codecov bot commented Mar 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant